package java19_1_22_inner_rawtype;

/**
 * 泛型坐标类
 * 此时x和y是相同的类型，使用一个类型参数
 * @author yuisama
 * @date 2022/01/22 11:31
 **/
public class Point<T> {
    private T x;
    private T y;

    public T getX() {
        return x;
    }

    public void setX(T x) {
        this.x = x;
    }

    public T getY() {
        return y;
    }

    public void setY(T y) {
        this.y = y;
    }

    public static void main(String[] args) {
        Point<String> point = new Point<>();
        point.setX("北纬20度");
        point.setY("东经101度");
        // 无须强制类型转换
        String x = point.getX();
        String y = point.getY();
//        Point point = new Point();
//        point.setX(10.1);
//        point.setY("北纬20度");
//        String x = (String) point.getX();
//        String y = (String) point.getY();
//        System.out.println("x = " + x + ", y = " + y);
//        // 自动装箱
//        point.setX(10.1);
//        point.setY(20.2);
//        // 自动拆箱
//        double x = (double) point.getX();
//        double y = (double) point.getY();
//        System.out.println("x = " + x + ", y = " + y);
//
//        Point point1 = new Point();
//        point1.setX("东经101度");
//        point1.setY("北纬55度");
//        String x1 = (String) point1.getX();
//        String y1 = (String) point1.getY();
//        System.out.println("x = " + x1 + ", y = " + y1);
    }
}